1. Field of the Invention
The present invention pertains to file systems in a computing environment and, more particularly, to a technique for multi-volume root support in such an environment.
2. Description of the Related Art
As information technology has matured, computing systems have evolved into what are now known as xe2x80x9centerprise computing systems.xe2x80x9d An enterprise computing system is typically a large number of computing and storage devices, all of which are employed by users from a single concern, or xe2x80x9centerprise.xe2x80x9d One popular type of enterprise computing system is an xe2x80x9cintranet,xe2x80x9d which is a computing system that operates like the Internet, but requires special authorization to access. Such access is typically only granted to employees and/or contractors of the enterprise. However, not all enterprise computing systems are intranets or operate along the principles of the Internet.
Another common characteristic of enterprise computing systems is that they may be conceptualized as groups, or xe2x80x9cclusters,xe2x80x9d of constituent computing systems. In an enterprise computing system, the number of users is typically so large that several, sometimes dozens or hundreds, of servers are necessary to manage all the computing resources of the system. These computing resources are grouped into clusters. Each cluster has at least one server that administers the cluster""s computing resources. While a cluster of constituent computing systems might include numerous servers, typically only one will administer the cluster""s computing resources across the whole cluster. Some enterprise computing systems might also have a xe2x80x9cmasterxe2x80x9d server that controls operations across the entire computing system.
Frequently, a computing system""s architects imbue the system with xe2x80x9csingle system semantics.xe2x80x9d This means that, ideally, the system structure is transparent to the user so that the user is completely unaware they are working in any particular system or cluster, or even that the overall system is grouped into clustered systems. All the users will know is that they are interfaced with a system of computing resources at their disposal. The computing system handles the users instructions in a manner without any specific input from the user as to where the resources necessary to complete the task may be found in the system.
One important component in these respects is the xe2x80x9cfile system.xe2x80x9d In this context, xe2x80x9cfilesxe2x80x9d constitute data stored in a predefined format, structure, or model. A file system (xe2x80x9cFSxe2x80x9d) usually organizes data into various files and manages their location, storage, and access. A FS typically consists of several levels, or xe2x80x9clayers,xe2x80x9d of abstraction. For instance, a FS will include a physical file system as a xe2x80x9cbottomxe2x80x9d layer, which is the actual physical file system in which the FS stores the data on a disk. Additional layers are also traditionally used.
One feature found in a clustered enterprise computing system is a xe2x80x9cdistributed file system.xe2x80x9d A distributed file system (xe2x80x9cDFSxe2x80x9d) is simply a FS in which the various files that may be accessed may be shared simultaneously by the other computing resources. Thus, multiple users can use the data at the same time. Files in a DFS may be distributed across the entire computing system, i.e., various part of the physical file system are located in different part of the computing system. More commonly, however, files are grouped and segregated into the clusters into which the rest of the computing resources are grouped. However, even though the files in the physical file system may be segregated into a cluster, they are still distributed across various computing resources in the cluster. Such a cluster-wide DFS shall, for present purposes, be referred to as a cluster FS (xe2x80x9cCFSxe2x80x9d).
Thus, one or more of the computing resources in a cluster will usually be running an xe2x80x9capplicationxe2x80x9d at any given time. The application(s) operate(s) on the data in the files of the CFS. The CFS manages the reading and writing of data between the computing resources and the cache and between the cache and the disk storage. Applications may also sometimes reach beyond their cluster into the CFS of another cluster, which is also handled by the CFS. The grouping of files into a particular CFS is generally predicated on the commonality of their use by application(s) running in a cluster. One function of the CFS is to provide a common address space for the distributed elements of the physical file system, i.e., to provide an intermediary so that the application need only employ a single address that the CFS then translates to a location in the physical file system.
One important aspect to managing an enterprise computing system is adding storage and or computing capacity, and it implicates both the physical file system and the CFS. For instance, if a new logical storage unit is added, or an old logical storage unit is removed, the modification to the cluster needs to be propagate through the various layers of the file system. One way to address this issue is to treat each logical storage unit as a xe2x80x9cstorage volume.xe2x80x9d Each storage volume containing a particular file system is xe2x80x9cmountedxe2x80x9d on a node of the cluster. New storage volumes cannot be added to the root file system, i.e., all root file systems are contained on a single storage volume. Regardless of the manner in which new storage volumes are introduced into the file system, it is important from a management standpoint because of its effect on the efficiency of the computing system""s operation.
The present invention is directed to resolving, or at least reducing, one or all of the problems mentioned above.
The present is, in one aspect, a method for supporting multi-volume storage in a cluster root file system. The method comprises maintaining a list of storage volumes containing the cluster root file system in a list partition of a boot disk for each cluster node; modifying the cluster root file system storage; and updating each list of storage volumes containing the cluster root file system to reflect the modification.